﻿using System.Collections.Generic;
using System;

namespace TLang
{
    public class Constants
    {
        public const string LINE_COMMENT = "--";

        public const string PAREN_BEGIN = "(";
        public const string PAREN_END = ")";

        public const string CURLY_BEGIN = "{";
        public const string CURLY_END = "}";

        public const string SQUARE_BEGIN = "[";
        public const string SQUARE_END = "]";

        public const string RETURN_ARROW = "->";

        public const string STRING_START = "\"";
        public const string STRING_END = "\"";
        public const string STRING_ESCAPE = "\\";

        // keywords
        public const string SEQ_KEYWORD = "seq";
        public const string FUN_KEYWORD = "fun";
        public const string IF_KEYWORD = "if";
        public const string DEF_KEYWORD = "define";
        public const string ASSIGN_KEYWORD = "set!";
        public const string RECORD_KEYWORD = "record";
        public const string DECLARE_KEYWORD = "declare";
        public const string UNION_KEYWORD = "U";

        public static readonly Char[] IDENT_CHARS = new Char[]{
        '~', '!', '@', '#', '.', '$', '%', '^', '&', '*', '-', '_', '=', '+', '|',
                        ':', ';', ',', '<', '>', '?', '/'};

        public static readonly char[] Atribute_Access_Chars = new Char[]
        {
            '.','#',':'
        };
    }
}
